package com.vegetable.modules.mapper.finance;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vegetable.modules.finance.entity.PurchaseDeliveryEntity;
import com.vegetable.modules.vo.finance.ArrearsDetailVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;

/**
 * 采购收货单Mapper
 */
@Mapper
public interface FinancePurchaseDeliveryMapper extends BaseMapper<PurchaseDeliveryEntity> {
    
    /**
     * 计算采购欠款金额
     * @param customerId 客户ID
     * @param regionId 地域标志
     * @return 欠款金额
     */
    BigDecimal calculatePurchaseArrears(@Param("customerId") Long customerId, @Param("regionId") Integer regionId);
    
    /**
     * 计算采购未打款金额
     * @param customerId 客户ID
     * @param regionId 地域标志
     * @return 未打款金额
     */
    BigDecimal calculatePurchaseUnpaid(@Param("customerId") Long customerId, @Param("regionId") Integer regionId);
    
    /**
     * 计算采购未对账金额
     * @param customerId 客户ID
     * @param regionId 地域标志
     * @return 未对账金额
     */
    BigDecimal calculatePurchaseUnreconciled(@Param("customerId") Long customerId, @Param("regionId") Integer regionId);
    
    /**
     * 查询采购未打款明细列表
     * @param regionId 地域标志
     * @return 采购未打款明细列表
     */
    List<ArrearsDetailVO> getPurchaseArrearsDetailList(@Param("regionId") Integer regionId);
}